from langchain_text_splitters import RecursiveCharacterTextSplitter
from typing import List

def parse_content(content: str, chunk_size: int = 1000, chunk_overlap: int = 200) -> List[str]:
    """
    使用LangChain的文本分割器将内容分割成块。

    :param content: 要分割的文本内容
    :param chunk_size: 每个块的大小
    :param chunk_overlap: 块之间的重叠部分
    :return: 分割后的文本块列表
    """
    text_splitter = RecursiveCharacterTextSplitter(
        chunk_size=chunk_size,
        chunk_overlap=chunk_overlap,
        length_function=len,
    )
    chunks = text_splitter.split_text(content)
    return chunks

if __name__ == '__main__':
    sample_content = """
    这是一个很长很长的示例文本，用于测试文本分割器的功能。我们希望看到这个文本被正确地分割成多个块，
    并且每个块的大小和重叠部分都符合我们的预期。LangChain的文本分割器是一个非常有用的工具，可以帮助我们
    处理大段的文本，以便后续的语言模型处理。
    """ * 10  # 乘以10以确保文本足够长
    
    chunks = parse_content(sample_content)
    print(f"文本被分割成 {len(chunks)} 个块。")
    for i, chunk in enumerate(chunks):
        print(f"--- 块 {i+1} ---\n{chunk}\n")